home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 2
/
Atari Mega Archive CD - Volume 2.iso
/
8bit
/
cislib_b
/
qkmenu.doc
< prev
next >
Wrap
Text File
|
1995-04-22
|
8KB
|
315 lines
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Documentation For %
% %
% Auto-Booter And Quick Menu %
% by %
% Keith Ledbetter %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
The Auto-Booter
===============
The Auto-Booter is a special boot
utility which allows you to specify
any binary load module that you would
like loaded at boot-up time. Auto-Boot
works with any DOS 2.0-type DOS in
either Single, Double, or 1050 (DOS 2.5)
densities (NOT with Sparta-DOS!).
Note that you should not specify a
program for auto-booting if it uses
DOS, since no DOS is loaded into the
machine with Auto-Booter on the disk.
While this utility was written mainly
for load module boot-menus, it can
load any type of binary file.
The program MAKEBOOT will install
Auto-Boot on a disk. Auto-Boot is
installed on the first 3 sectors of
the disk, like any DOS, and therefore
can be written to any disk you have,
EVEN IF IT ALREADY HAS FILES ON IT.
(In fact -- it MUST have files on it.
See below.)
To install Auto-boot, do the following:
- Do a binary load of MAKEBOOT (or
whatever name you called it).
- MAKEBOOT will inform you to place
the disk that you will be writing
Auto-boot to into drive 1. Do
this, then hit any key.
- Next, since Auto-boot works with
disks formatted with many different
DOS's, you must tell MAKEBOOT what
density the disk is. This can be
either Single, Double, or 1050
(DOS 2.5) format. Press the
corresponding key for your disk.
- MAKEBOOT will then show you a
listing of all of the files on
that disk, along with a letter or
number printed beside each name.
Now, all you have to do is press
the number/letter of the file that
you want Auto-Boot to load at
boot-up time.
After pressing a key, Auto-Booter will
be written do the disk, and the program
will re-start, allowing you to do more
than one disk at a time. Once you are
finished, just simply re-boot the system.
Note that you can run MAKEBOOT and
simply change the file that you have
marked for boot. If, for example,
you have FILEA loading at boot-up time
and would like to change to FILEB, just
run MAKEBOOT, press the letter/number
of FILEB, and FILEB will now boot!
The Ultimate Atari
Quickloader Menu (QKMENU)
==========================
THIS MENU WILL NOT WORK UNLESS YOU
HAVE WRITTEN AUTO-BOOT TO THE DISKETTE!!
QKMENU is a binary loader menu that
will work hand-in-hand with the Auto-
Boot routines. Because of the very
low location of Auto-Boot in memory,
this menu should load about 99.99% of
ALL binary files.
To use QKMENU, simply copy the file
to a disk with your favorite games on
it. Then, run MAKEBOOT (see above) and
tell it to boot QKMENU.SYS (or whatever
name you called it).
Features of QKMENU:
-------------------
- Any file with an extender of .SYS
will not appear on the menu. So,
you should name QKMENU
<something>.SYS so that it will
not show up.
- Automatically disables BASIC in
the XL machines - no need to hold
down OPTION!
- Files are displayed using the
ENTIRE 11 positions of the file
name, and any 0's (zeros) in the
name will be replaced by spaces
on the menu. So, a file named
"LIVE0WIR.E" will appear as
"LIVE WIRE" on the menu.
- Handles up to 32 filenames per
diskette!
- To load another game, simply hit
SYSTEM RESET and the menu will
be re-loaded (re-disabling BASIC).
Unless, of course, the game that
you are running steals the Reset
Vector.
Tips On Installing QKMENU
-------------------------
There are pros and cons of having a
menu as a file like this. The dis-
advantage is that you will use a few
more sectors per diskette than most
"boot" menus. This is because boot
menus normally "steal" 4 or 5 of the
catalog sectors to hold their code.
The advantage is that you can install
Auto-Boot / QKMENU to ANY disk, no
matter what is on the disk, with no
worry about destroying data or having
"garbage" in your catalog sectors:
[1] If you have a disk with DOS.SYS
and/or DUP.SYS on it that contains
games (normally with an autorun.sys
menu), do the following:
- Boot up and go to DOS.
- DELETE DOS.SYS and DUP.SYS
(since you no longer need
DOS!), and also delete the
autorun.sys menu (if present).
- Copy QKMENU.SYS over to this
disk.
- Run MAKEBOOT and tell it to
boot QKMENU.SYS.
[2] If you have a disk that already
has a "boot" menu on it (like
"Quick Loader" or my old "Quick
Boot Menu"), then just:
- Copy QKMENU.SYS over to this
disk.
- Run MAKEBOOT and tell it to
boot QKMENU.SYS.
[3] If you are starting with a fresh
disk, just:
- Boot up your favorite DOS and
format the new disk in either
single or double density.
- Copy QKMENU.SYS over to this
disk.
- Run MAKEBOOT and tell it to
boot QKMENU.SYS.
Piece of cake!!
Interfacing to Auto-Boot
========================
If you aren't the hacking type, then
you can skip this section. The following
will tell you how to interface with
Auto-Boot, in case you are like me and
want to write your own menu.
There is only one minor rule that
you must follow if you want to write a
menu that uses the Auto-Boot routines.
This is that the Auto-Boot routines are
at locations $0700 thru $086F, so your
program must not use this area of
memory (I TOLD you it was simple!)
There are only 3 zero-page locations
that you need to know about to use
Auto-Boot in your own program. These
are:
$0709 - This location contains the
current DENSITY of the disk
just loaded. 0=Double Density,
128=Single Density. This
should not be modified by
your program, but you will
need to check it to see what
density to read the catalog
sectors in.
$070A - This 2-byte location contains
the STARTING SECTOR of the
file to boot.
$0714 - This is the "warm-start"
entry point of Auto-Booter.
Jump to here after setting
the starting sector, and the
load of the file will take
place!
Examples
========
Assembler:
----------
DENSITY = $0709 ;Disks density
STSECTOR = $070A ;Start sector
AUTOBOOT = $0714 ;Entry Point
<.....
.....
process the menu and
get the starting sector of
the requested file
.....
.....>
LOADIT LDA SECTOR ;lo byte
STA STSECTOR
LDA SECTOR+1 ;hi byte
STA STSECTOR+1
JMP AUTOBOOT
Action! (with run-time module only!)
=======
Byte Density =$0709 ;Disks density
Card StSector=$070A ;Start sector
Proc Auto_Boot = $0714 ()
Proc Loadit()
StSector = Sector ;Set up start
Auto_Boot() ;Go load it!
Return
Proc Get_Selection()
<.....
.....
process the menu and
get the starting sector of
the requested file
.....
.....>
Loadit ()
Once you jump to the loader routine,
control will NOT be passed back to
your program. But, before running the
program just loaded, the Auto-Booter
does the following things:
- Resets the character set to the
system ROM set.
- Resets the background color of
the screen.
- Resets the stack, so don't
worry about jumping out of
a subroutine.
Hope you enjoy it -
And happy gaming!!
Keith